数组：
	什么是数组：数组就相同类型变量的组合，它是一种指定义变量的方法。
	一维数组：把变量排成一排。
		定义：类型 数组名[数量]：
			int arr[5]; // 数字表示的是变量的数量
			int num1,num2,num3,num4,num5;
			注意：数组定义后，默认值不确定。
		使用：数组名＋编号（下标）
			arr[0],arr[1],arr[2],arr[3],arr[4] // 数字表示编号
			注意：数组的编号从零开始，0~数量-1
		遍历：使用for循环配合，使用循环变量当做数组的下标。
		初始化：类型 数组名[数量] = {v1,v2,v3,v4};
			1、如果初始化数据超过数组的长度，多余的值会被忽略，而且会有警告产生。
			2、如果初始化数据不够，则补零。
			3、空的大括号表示数组全部初始化零。
			4、当对数组进行初始化，数组的长度可以忽略，编译器会计算数据的个数和，然后再告诉数组。
			sizeof(arr)/sizeof(arr[0]);
		练习1：输入一个整数，分解显示。
			1234 显示出 1 2 3 4
		练习2：定义一个长度为10数组，并随机初始化，计算出数组中的第二大的值。
		
	二维数组：把变量排成一个方阵。
		定义：类型 数组名[行数][列数];
			int arr[3][4];
			[][][][]
			[][][][]
			[][][][]
		使用：数组名[行编号][列编号];
			[0][0],[0][1],[0][2],[0][3]
			[1][0],[1][1],[1][2],[1][3]
			[2][0],[2][1],[2][2],[2][3]
		遍历：使用双层for循环配合，外层循环负责遍历行，内层循环负责遍历列。
		初始化：类型 数组名[行数][列数] = {{v1,v2,v3,v4},{v1,v2,v3,v4},{v1,v2,v3,v4}};
		
		练习3：定义一个4＊5的二维数组，找出最大值的下标。
		
	变长数组：
		定长数组：数组长度在编译时就已经确定了。
		变长数组：数组长度在编译时不确定，程序运行期间可根据实际情况变长，但执行数组定义语句时，就确定下来不能再变。
		优点：可以根据实际情况确定数组的长度，节约内存。
		缺点：不能初始化。

数组的越界：
	编译器不会检查数组的下标（不能检查，也不愿意检查），因此使用数组越界可以越界（不会有语法错误）。
	数组越界的后果：
		1、一切正常。
		2、脏数组。
		
#include <stdio.h>

int main()
{
	int arr[10],i;
	printf("开始初始化数组...\n");
	for(i=0; i<=10; i++)
	{
		arr[i] = 0;
		printf("------------%d\n",i);
	}
	printf("初始化数组结束!\n");
}
//数组长度为10 超过十个以后将0赋给i
//无限循环
		
		3、段错误(核心已转储)，非法访问内存时被操作知道了。




走迷宫：
	#include <getch.h>
	getch() 获取方向键
		up183,down184,right185,left186
	#include <stdlib.h>
	system("clear"); // 清理屏幕
	#include <time.h>
	time(NULL); 可以获取到自1970年1月1月00:00:00到现的秒数。
	cp getch.h /usr/include/
	
##########
#@########
# ########
#   ######
### ######
### ######
### ######
###       
##########


	
	作业1：定义一个长度为10的数组，使用srand/rand进行随机初始化，然后对数组进行从大到小排序。
	作业2：输入一个n，定义出一个n＊n的二维数组，以螺旋形状填充数组的值。
		 1  2  3 4
		12 13 14 5
		11 16 15 6
		10  9  8 7
	作业3：输入一个n，定义出一个n＊n的二维数组，以蛇型形状填充数组的值。
		 1  2  6  7
		 3  5  8 13
		 4  9 12 14
		10 11 15 16
	作业4：显现出10个[100～1000)之间的随机数。
	
	作业5：随机出一组彩票数，以福彩双色球为例。
	
	作业6：定义一个8＊8的二维数组，随机布置20个地雷，在不是地雷的位置上显示出周边有多个雷。
	




